fix: improve Windows OS detection in CLI installation script#4928
Merged
DOsinga merged 2 commits intoblock:mainfrom Oct 7, 2025
Merged
fix: improve Windows OS detection in CLI installation script#4928DOsinga merged 2 commits intoblock:mainfrom
DOsinga merged 2 commits intoblock:mainfrom
Conversation
Kvadratni
approved these changes
Oct 2, 2025
Contributor
Kvadratni
left a comment
There was a problem hiding this comment.
Thank you! every improvement is welcome
Collaborator
|
thanks @aegntic - can you do the DCO thing so we can get this merged? |
aegntic
commented
Oct 6, 2025
Contributor
Author
aegntic
left a comment
There was a problem hiding this comment.
you can't change the people around you, but you can change the people around you.
- Enhanced Windows detection for Git Bash, MSYS2, Cygwin, and WSL environments - Added multiple detection methods: WINDIR, OSTYPE, /proc/version, mount points, Windows executables - Fixed issue where Git Bash on Windows incorrectly detected as Linux - Added debug output to help troubleshoot OS detection issues - Improved extraction tool validation based on detected OS - Fixes block#4848 where CLI installation failed due to downloading Linux tar.bz2 instead of Windows zip Closes block#4848 Signed-off-by: aegntic <research@aegntic.ai> diff --git a/download_cli.sh b/download_cli.sh index 2131924..107d3e7 100755 --- a/download_cli.sh +++ b/download_cli.sh @@ -36,6 +36,20 @@ if ! command -v tar >/dev/null 2>&1 && ! command -v unzip >/dev/null 2>&1; then exit 1 fi +# Check for required extraction tools based on detected OS +if [ "$OS" = "windows" ]; then + # Windows uses PowerShell's built-in Expand-Archive - check if PowerShell is available + if ! command -v powershell.exe >/dev/null 2>&1 && ! command -v pwsh >/dev/null 2>&1; then + echo "Warning: PowerShell is recommended to extract Windows packages but was not found." + echo "Falling back to unzip if available." + fi +else + if ! command -v tar >/dev/null 2>&1; then + echo "Error: 'tar' is required to extract packages for $OS. Please install tar and try again." + exit 1 + fi +fi + # --- 2) Variables --- REPO="block/goose" @@ -58,12 +72,33 @@ else fi # --- 3) Detect OS/Architecture --- -OS=$(uname -s | tr '[:upper:]' '[:lower:]') +# Better OS detection for Windows environments +if [[ "${WINDIR:-}" ]] || [[ "${windir:-}" ]] || [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then + OS="windows" +elif [[ -f "/proc/version" ]] && grep -q "Microsoft\|WSL" /proc/version 2>/dev/null; then + # WSL detection + OS="windows" +elif [[ "$PWD" =~ ^/mnt/[a-zA-Z]/ ]]; then + # WSL mount point detection (like /mnt/c/) + OS="windows" +elif [[ "$OSTYPE" == "darwin"* ]]; then + OS="darwin" +elif command -v powershell.exe >/dev/null 2>&1 || command -v cmd.exe >/dev/null 2>&1; then + # Check if Windows executables are available (another Windows indicator) + OS="windows" +elif [[ "$PWD" =~ ^/[a-zA-Z]/ ]] && [[ -d "/c" || -d "/d" || -d "/e" ]]; then + # Check for Windows-style mount points (like in Git Bash) + OS="windows" +else + # Fallback to uname for other systems + OS=$(uname -s | tr '[:upper:]' '[:lower:]') +fi + ARCH=$(uname -m) # Handle Windows environments (MSYS2, Git Bash, Cygwin, WSL) case "$OS" in - linux|darwin) ;; + linux|darwin|windows) ;; mingw*|msys*|cygwin*) OS="windows" ;; @@ -87,6 +122,16 @@ case "$ARCH" in ;; esac +# Debug output (safely handle undefined variables) +echo "WINDIR: ${WINDIR:-<not set>}" +echo "OSTYPE: $OSTYPE" +echo "uname -s: $(uname -s)" +echo "uname -m: $(uname -m)" +echo "PWD: $PWD" + +# Output the detected OS +echo "Detected OS: $OS with ARCH $ARCH" + # Build the filename and URL for the stable release if [ "$OS" = "darwin" ]; then FILE="goose-$ARCH-apple-darwin.tar.bz2"
62d0099 to
364e222
Compare
Signed-off-by: aegntic <research@aegntic.ai>
364e222 to
9b8cdf6
Compare
Contributor
Author
|
sorted |
Contributor
|
Closed #5033 as dupe of this one! |
lifeizhou-ap
added a commit
that referenced
this pull request
Oct 7, 2025
* main: use agent manager for subagent (#4828) fix: improve Windows OS detection in CLI installation script (#4928) Make it startable from playwright and also isolate (#5016) Fix linux deeplinks not working (#5041) docs: embed more videos (#5042) Display extension install notes in "Add custom extension" form (#5036) Add support for headers in extensions deeplinks (#5034) chore: put test in the name (#4919) Add new subcommand for opening recipes in desktop app (#4970) Update system.md with softer subagent language (#5023) docs: add new goose tip (#4941) Fix nix flake double copy (#4976) Upgrade electron for macOS Tahoe compatibility (#5015)
katzdave
added a commit
that referenced
this pull request
Oct 7, 2025
…aned-tool-calls * 'main' of github.com:block/goose: (38 commits) docs: misc updates for extensions directory (#5035) updating recipe scanner workflows for detecting recipes from forked repos (#5056) feat(prompt-library): add Smart Meeting Assistant advanced prompt (#4998) (#5031) Allow auto focus and typing while chat is initializing (#5043) docs(blog): Add blog for running Goose in containerized envs (#5052) fix: Add WINDOWS_CODESIGN_CERTIFICATE to nightly workflow (#5037) Developer `analyze` tool improvement (#5030) use agent manager for subagent (#4828) fix: improve Windows OS detection in CLI installation script (#4928) Make it startable from playwright and also isolate (#5016) Fix linux deeplinks not working (#5041) docs: embed more videos (#5042) Display extension install notes in "Add custom extension" form (#5036) Add support for headers in extensions deeplinks (#5034) chore: put test in the name (#4919) Add new subcommand for opening recipes in desktop app (#4970) Update system.md with softer subagent language (#5023) docs: add new goose tip (#4941) Fix nix flake double copy (#4976) Upgrade electron for macOS Tahoe compatibility (#5015) ...
This was referenced Oct 8, 2025
Closed
9 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
bzip2install #4848 where CLI installation failed due to downloading Linux tar.bz2 instead of Windows zipCloses #4848
Pull Request Description
Email: